﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum ИспользованиеКонтролируемыхЗначенийБюджетов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Значение используется при планировании
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"f0089f57-022c-46d3-980e-9827b9633d7e\", \"Представление\":\"ПриПланировании\"}")]
		ПриПланировании = 0,//При планировании
	///<summary>
	///Значение используется при исполнении бюджета (оформлении заявок на расходование средств)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"62c91fe3-478e-4f04-b620-8eb49541067c\", \"Представление\":\"ПриИсполнении\"}")]
		ПриИсполнении = 1,//При исполнении
	}
	public static partial class ИспользованиеКонтролируемыхЗначенийБюджетов_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Значение используется при планировании
		///</summary>
		public static readonly Guid ПриПланировании = new Guid("27980e98-63b9-7e3d-46d3-022cf0089f57");//При планировании
		///<summary>
		///Значение используется при исполнении бюджета (оформлении заявок на расходование средств)
		///</summary>
		public static readonly Guid ПриИсполнении = new Guid("b48e20b6-4195-7c06-4f04-478e62c91fe3");//При исполнении
		public static ИспользованиеКонтролируемыхЗначенийБюджетов Получить(this ИспользованиеКонтролируемыхЗначенийБюджетов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ИспользованиеКонтролируемыхЗначенийБюджетов Получить(this ИспользованиеКонтролируемыхЗначенийБюджетов Значение, Guid Ссылка)
		{
			if(Ссылка == ПриПланировании)
			{
				return ИспользованиеКонтролируемыхЗначенийБюджетов.ПриПланировании;
			}
			else if(Ссылка == ПриИсполнении)
			{
				return ИспользованиеКонтролируемыхЗначенийБюджетов.ПриИсполнении;
			}
			return ИспользованиеКонтролируемыхЗначенийБюджетов.ПустаяСсылка;
		}
		public static byte[] Ключ(this ИспользованиеКонтролируемыхЗначенийБюджетов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ИспользованиеКонтролируемыхЗначенийБюджетов Значение)
		{
			switch (Значение)
			{
				case ИспользованиеКонтролируемыхЗначенийБюджетов.ПриПланировании: return ПриПланировании;
				case ИспользованиеКонтролируемыхЗначенийБюджетов.ПриИсполнении: return ПриИсполнении;
			}
			return Guid.Empty;
		}
	}
}